//创建一个axios实例
let service=axios.create();

//表单登录（登录功能）
/**
 * 登入的表单请求
 * @param url
 * @param data
 * @returns {Promise<unknown>}
 */

function requestPost(url,data){
        //创建一个promise对象
        let p=new Promise(function (resolve,reject) {
            let str="";
            if(data){
                for(let key in data){
                    str+=(key+"="+data[key]+"&")
                }
            }
            //模拟表单提交
            //post请求
            service.post("/login",str,{
                headers: {"Content-Type": "application/x-www-form-urlencoded;charset=UTF-8"}
            }).then((resp)=>{
               //将promise修改为成功状态
                resolve(resp.data);
            }).catch((err)=>{
                //将promise修改为失败状态
                reject(err);
            });
        });
        //返回此promise对象
        return p;
}
/**
 * axios做post请求，注：请求体中的数据为json格式
 * @param url 接口地址
 * @param data 请求体参数
 */
function requestPostman(url,data){
    //创建一个promise对象
    let p = new Promise(function (resolve,reject) {
        //发起post请求
        service.post(url,data).then((resp)=>{
            //将promise对象修改为成功状态
            resolve(resp.data);
        }).catch((err)=>{
            //将promise对象修改为失败状态
            reject(err);
        })
    });

    return p;
}
/**
 * axios 做get请求
 * @param url 接口地址
 * @param params 请求参数
 */
function requestGet(url,params){
    //创建一个promise对象
    let p = new Promise(function (resolve,reject) {
        //发起get请求
        service.get(url,{
            //get请求参数传递和post有点不一样
            params:params
        }).then((resp)=>{
            //将promise对象修改为成功状态
            resolve(resp.data);
        }).catch((err)=>{
            //将promise对象修改为失败状态
            reject(err);
        })
    });

    return p;
}
/**
 * axios 做delete请求
 * @param url 接口地址
 * @param params 请求参数
 */
function requestDelete(url,params){
    //创建一个promise对象
    let p = new Promise(function (resolve,reject) {
        //发起delete请求
        service.delete(url,{
            //get请求参数传递和post有点不一样
            params:params
        }).then((resp)=>{
            //将promise对象修改为成功状态
            resolve(resp.data);
        }).catch((err)=>{
            //将promise对象修改为失败状态
            reject(err);
        })
    });

    return p;
}

/**
 *axios做post请求 注：请求体中的数据为json格式
 * @param url 接口地址
 * @param params 请求参数
 */
function requestPostman(url,data) {
    let p=new Promise(function (resolve, reject) {
        //发起post请求
        service.post(url,data).then((resp)=>{
            //将promise对象修改为成功状态
            resolve(resp.data);
        }).catch((err)=>{
            //将promise对象修改为失败状态
            reject(err);
        })
    });
    return p;
}


/**
 *axios做get请求
 * @param url 接口地址
 * @param params 请求参数
 */
function requestGet(url,params) {
    let p=new Promise(function (resolve, reject) {
        //发起get请求
        service.get(url,{
            //get请求参数传递和post有点不一样
            params:params
        }).then((resp)=>{
            //将promise对象修改为成功状态
            resolve(resp.data);
        }).catch((err)=>{
            //将promise对象修改为失败状态
            reject(err);
        })
    });
    return p;
}

/**
 *axios做delete请求
 * @param url 接口地址
 * @param params 请求参数
 */
function requestDelete(url,params) {
    let p=new Promise(function (resolve, reject) {
        //发起get请求
        service.delete(url,{
            //get请求参数传递和post有点不一样
            params:params
        }).then((resp)=>{
            //将promise对象修改为成功状态
            resolve(resp.data);
        }).catch((err)=>{
            //将promise对象修改为失败状态
            reject(err);
        })
    });
    return p;
}

